<?php
class Application_Model_Check extends Zend_Db_Table_Abstract{
    
    protected $_name="check";
    protected $_primary="idConsulta";

     
    public function bloquearConsulta($pIdConsulta){
        $servicioFecha = new Application_Service_Numeros();
        //Selecciono si hay mas consulta con ese id bloqueada
        $select=$this->select();
        $select->from('check','*');
        $select->where("idConsulta=?",$pIdConsulta);
        $resultado=$this->fetchAll($select);
        $toArray = $resultado->toArray();
        $horaBase="";
        foreach($toArray as $a){
            $horaBase=$a['hora'];
        }
        $horaActual= date("H:i:s");
        //Si el resultado de la consulta anterior es 0 entonces queiere decir que no esta bloqueada la consulta.
        if($resultado->count()==0){
            //La bloqueo y devulevo estado bloqueada
            $datos=array('idConsulta'=>$pIdConsulta,'hora'=>date("H:i:s"));
            $this->insert($datos);
            return 1;
        }else{
            //En el caso de que la consulta estuviera bloqueada, puede haber pasado que se haya cerrado el navegador
            //Para eso resto la hora de la bd y la hora actual y si paso 1 min entonces borro el estado de bloqueado y lo bloqueo de nuevo
            $diferencia=$servicioFecha->restarHoras($horaBase, $horaActual);
            if($diferencia>2){
                $this->debloquearConsulta($pIdConsulta);
                //La bloqueo y devulevo estado bloqueada
                $datos=array('idConsulta'=>$pIdConsulta,'hora'=>date("H:i:s"));
                $this->insert($datos);
                return 1;
            }
            //O tambien puede pasar que si la dferencia es menor a 2 min entonces la consulta esta siendo usada por otro operador
            else{
                return 0;
            }
            
        }
        
    }
    
    public function debloquearConsulta($pIdConsulta){
        $where = $this->getAdapter()->quoteInto('idConsulta =?',$pIdConsulta);
        $this->delete($where);
    }
    
    
}